package com.isunland.managesystem.entity;

import com.isunland.managesystem.base.BaseModel;

/**
 * 对象功能:项目发票表 Model对象 开发公司:北京信普达系统工程有限公司 开发人员:zsd 创建时间:2015-03-13 14:34:59
 */
public class RProInvoiceRecd extends BaseModel {
  // 主键
  protected String id;
  // 序号
  protected Long orderNo;
  // 备注
  protected String remark;
  // 登记人id
  protected String regStaffId;
  // 登记人名称
  protected String regStaffName;
  // 登记时间
  protected String regDate;
  // 发票类型
  protected String invoiceType;
  // 客户名称
  protected String customerName;
  // 客户id
  protected String customerId;
  // 项目id
  protected String projectId;
  // 项目名称
  protected String projectName;
  // 事务内容
  protected String content;
  // 项目金额
  protected double contractAmount;
  // 开票金额
  protected double makedInvoiceAmount;
  // 剩余金额
  protected double residualAmount;
  // 客户经手人
  protected String customerHandleName;
  // 我方经手人id
  protected String selfHandleId;
  // 我放经手人名称
  protected String selfHandleName;
  // 数据状态
  protected String dataStatus;
  // 审核人id
  protected String checkStaffId;
  // 审核人名称
  protected String checkStaffName;
  // 审核时间
  protected String checkDate;
  // 会员编码
  protected String memberCode;

  // 合同编码
  protected String contractCode;
  // 合同名称
  protected String contractName;
  // 合同Id
  protected String contractId;
  // 发票编号
  protected String invoiceNumber;
  // 票据类型 in-收票 out-开票
  protected String invoiceKind;
  // 流程id
  protected Long runId = 0L;
  // 流程定义id
  protected Long defId = 0L;
  // 开票人方全称
  protected String invoiceMaker;
  // 开票人code
  protected String invoiceMakerCode;
  // 开户行
  protected String bank;
  // 开户行帐号
  protected String bankAccount;
  // 税号
  protected String taxAccount;
  // 地址
  protected String address;
  // 开票或收票时间
  // @JsonSerialize(using = FullDateSeriallizer.class)
  // @JsonDeserialize(using = FullDateDeserializer.class)
  protected String occurDate;
  // 收付款情况描述
  protected String invoiceDesc;
  // 是否完成收付款
  protected String ifFinished;
  // 已完成收支金额
  protected Double invoiceAmount;

  protected String orderType;
  // 合同或订单的名字,根据orderType判断.
  protected String contractBillName;
  protected String orderName;
  protected String orderId;

  // customerType
  protected String customerType;// customer_type

  // 销项额
  protected Double mtsumPrice;
  // 销项税
  protected Double outputTax;

  // 开票单位
  protected String invoiceDeptName;
  //开票截止日期
  protected String invoiceDeadline;
  //收票人
  protected String invoiceReciverName;
  //收票人编码
  protected String invoiceReciverCode;

  public String getInvoiceMakerCode() {
    return invoiceMakerCode;
  }

  public void setInvoiceMakerCode(String invoiceMakerCode) {
    this.invoiceMakerCode = invoiceMakerCode;
  }

  //收票日期
  protected String invoiceReciveDate;
  //收票方式与说明
  protected String invoiceReciveDesc;

  public String getInvoiceReciveDesc() {
    return invoiceReciveDesc;
  }

  public void setInvoiceReciveDesc(String invoiceReciveDesc) {
    this.invoiceReciveDesc = invoiceReciveDesc;
  }

  public String getInvoiceReciveDate() {
    return invoiceReciveDate;
  }

  public void setInvoiceReciveDate(String invoiceReciveDate) {
    this.invoiceReciveDate = invoiceReciveDate;
  }

  public String getInvoiceReciverCode() {
    return invoiceReciverCode;
  }

  public void setInvoiceReciverCode(String invoiceReciverCode) {
    this.invoiceReciverCode = invoiceReciverCode;
  }

  public String getInvoiceReciverName() {
    return invoiceReciverName;
  }

  public void setInvoiceReciverName(String invoiceReciverName) {
    this.invoiceReciverName = invoiceReciverName;
  }

  public String getInvoiceDeadline() {
    return invoiceDeadline;
  }

  public void setInvoiceDeadline(String invoiceDeadline) {
    this.invoiceDeadline = invoiceDeadline;
  }

  public Double getMtsumPrice() {
    return mtsumPrice;
  }

  public Double getOutputTax() {
    return outputTax;
  }

  public void setOutputTax(Double outputTax) {
    this.outputTax = outputTax;
  }

  public void setMtsumPrice(Double mtsumPrice) {
    this.mtsumPrice = mtsumPrice;
  }

  public String getOrderId() {
    return orderId;
  }

  public void setOrderId(String orderId) {
    this.orderId = orderId;
  }

  public String getCustomerType() {
    return customerType;
  }

  public void setCustomerType(String customerType) {
    this.customerType = customerType;
  }

  public Long getDefId() {
    return defId;
  }

  public void setDefId(Long defId) {
    this.defId = defId;
  }

  public String getOrderName() {
    return orderName;
  }

  public void setOrderName(String orderName) {
    this.orderName = orderName;
  }

  public String getContractBillName() {
    if (orderType == null || orderType.equals("")) {
      return null;
    }
    if (orderType.equalsIgnoreCase("in") || orderType.equalsIgnoreCase("out")) {
      return getOrderName();
    }
    if (orderType.equalsIgnoreCase("contract")) {
      return getContractName();
    }
    if (orderType.equalsIgnoreCase("project")) {
      return getProjectName();
    }
    return null;
  }

  public String getContractBillId() {
    if (orderType == null || orderType.equals("")) {
      return null;
    }
    if (orderType.equalsIgnoreCase("in") || orderType.equalsIgnoreCase("out")) {
      return getOrderId();
    }
    if (orderType.equalsIgnoreCase("contract")) {
      return getContractId();
    }
    if (orderType.equalsIgnoreCase("project")) {
      return getProjectId();
    }
    return null;
  }

  public void setContractBillName(String contractBillName) {
    this.contractBillName = contractBillName;
  }

  public String getOrderType() {
    return orderType;
  }

  public void setOrderType(String orderType) {
    this.orderType = orderType;
  }

  public String getInvoiceDeptName() {
    return invoiceDeptName;
  }

  public void setInvoiceDeptName(String invoiceDeptName) {
    this.invoiceDeptName = invoiceDeptName;
  }

  public String getInvoiceMaker() {
    return invoiceMaker;
  }

  public void setInvoiceMaker(String invoiceMaker) {
    this.invoiceMaker = invoiceMaker;
  }

  public String getBank() {
    return bank;
  }

  public void setBank(String bank) {
    this.bank = bank;
  }

  public String getBankAccount() {
    return bankAccount;
  }

  public void setBankAccount(String bankAccount) {
    this.bankAccount = bankAccount;
  }

  public String getTaxAccount() {
    return taxAccount;
  }

  public void setTaxAccount(String taxAccount) {
    this.taxAccount = taxAccount;
  }

  public String getAddress() {
    return address;
  }

  public void setAddress(String address) {
    this.address = address;
  }

  public String getPhone() {
    return phone;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

  // 电话
  protected String phone;

  public Long getRunId() {
    return runId;
  }

  public void setRunId(Long runId) {
    this.runId = runId;
  }

  public String getInvoiceKind() {
    return invoiceKind;
  }

  public void setInvoiceKind(String invoiceKind) {
    this.invoiceKind = invoiceKind;
  }

  public String getInvoiceNumber() {
    return invoiceNumber;
  }

  public void setInvoiceNumber(String invoiceNumber) {
    this.invoiceNumber = invoiceNumber;
  }

  public String getContractCode() {
    return contractCode;
  }

  public void setContractCode(String contractCode) {
    this.contractCode = contractCode;
  }

  public String getContractName() {
    return contractName;
  }

  public void setContractName(String contractName) {
    this.contractName = contractName;
  }

  public String getContractId() {
    return contractId;
  }

  public void setContractId(String contractId) {
    this.contractId = contractId;
  }

  public void setId(String id) {
    this.id = id;
  }

  /**
   * 返回 主键
   */
  public String getId() {
    return this.id;
  }

  public void setOrderNo(Long orderNo) {
    this.orderNo = orderNo;
  }

  /**
   * 返回 序号
   */
  public Long getOrderNo() {
    return this.orderNo;
  }

  public void setRemark(String remark) {
    this.remark = remark;
  }

  /**
   * 返回 备注
   */
  public String getRemark() {
    return this.remark;
  }

  public void setRegStaffId(String regStaffId) {
    this.regStaffId = regStaffId;
  }

  /**
   * 返回 登记人id
   */
  public String getRegStaffId() {
    return this.regStaffId;
  }

  public void setRegStaffName(String regStaffName) {
    this.regStaffName = regStaffName;
  }

  /**
   * 返回 登记人名称
   */
  public String getRegStaffName() {
    return this.regStaffName;
  }

  public void setRegDate(String regDate) {
    this.regDate = regDate;
  }

  /**
   * 返回 登记时间
   */
  public String getRegDate() {
    return this.regDate;
  }

  public void setInvoiceType(String invoiceType) {
    this.invoiceType = invoiceType;
  }

  /**
   * 返回 发票类型
   */
  public String getInvoiceType() {
    return this.invoiceType;
  }

  public String getInvoiceName() {
    if (invoiceType == null) {
      return null;
    }
    if (invoiceType.equalsIgnoreCase("001")) {
      return "增值税普通发票";
    }
    if (invoiceType.equalsIgnoreCase("002")) {
      return "增值税专用发票";
    }
    return null;
  }

  public void setCustomerName(String customerName) {
    this.customerName = customerName;
  }

  /**
   * 返回 客户名称
   */
  public String getCustomerName() {
    return this.customerName;
  }

  public void setCustomerId(String customerId) {
    this.customerId = customerId;
  }

  /**
   * 返回 客户id
   */
  public String getCustomerId() {
    return this.customerId;
  }

  public void setProjectId(String projectId) {
    this.projectId = projectId;
  }

  /**
   * 返回 项目id
   */
  public String getProjectId() {
    return this.projectId;
  }

  public void setProjectName(String projectName) {
    this.projectName = projectName;
  }

  /**
   * 返回 项目名称
   */
  public String getProjectName() {
    return this.projectName;
  }

  public void setContent(String content) {
    this.content = content;
  }

  /**
   * 返回 事务内容
   */
  public String getContent() {
    return this.content;
  }

  public void setContractAmount(Double contractAmount) {
    this.contractAmount = contractAmount;
  }

  /**
   * 返回 项目金额
   */
  public double getContractAmount() {
    return this.contractAmount;
  }

  public void setMakedInvoiceAmount(Double makedInvoiceAmount) {
    this.makedInvoiceAmount = makedInvoiceAmount;
  }

  /**
   * 返回 开票金额
   */
  public Double getMakedInvoiceAmount() {
    return this.makedInvoiceAmount;
  }

  public void setResidualAmount(Double residualAmount) {
    this.residualAmount = residualAmount;
  }

  /**
   * 返回 剩余金额
   */
  public Double getResidualAmount() {
    return this.residualAmount;
  }

  public void setCustomerHandleName(String customerHandleName) {
    this.customerHandleName = customerHandleName;
  }

  /**
   * 返回 客户经手人
   */
  public String getCustomerHandleName() {
    return this.customerHandleName;
  }

  public void setSelfHandleId(String selfHandleId) {
    this.selfHandleId = selfHandleId;
  }

  /**
   * 返回 我方经手人id
   */
  public String getSelfHandleId() {
    return this.selfHandleId;
  }

  public void setSelfHandleName(String selfHandleName) {
    this.selfHandleName = selfHandleName;
  }

  /**
   * 返回 我放经手人名称
   */
  public String getSelfHandleName() {
    return this.selfHandleName;
  }

  public void setDataStatus(String dataStatus) {
    this.dataStatus = dataStatus;
  }

  /**
   * 返回 数据状态
   */
  public String getDataStatus() {
    return this.dataStatus;
  }

  public void setCheckStaffId(String checkStaffId) {
    this.checkStaffId = checkStaffId;
  }

  /**
   * 返回 审核人id
   */
  public String getCheckStaffId() {
    return this.checkStaffId;
  }

  public void setCheckStaffName(String checkStaffName) {
    this.checkStaffName = checkStaffName;
  }

  /**
   * 返回 审核人名称
   */
  public String getCheckStaffName() {
    return this.checkStaffName;
  }

  public void setCheckDate(String checkDate) {
    this.checkDate = checkDate;
  }

  /**
   * 返回 审核时间
   */
  public String getCheckDate() {
    return this.checkDate;
  }

  public void setMemberCode(String memberCode) {
    this.memberCode = memberCode;
  }

  /**
   * 返回 会员编码
   */
  public String getMemberCode() {
    return this.memberCode;
  }

  public void setOccurDate(String occurDate) {
    this.occurDate = occurDate;
  }

  /**
   * 返回 收票或开票日期
   */
  public String getOccurDate() {
    return this.occurDate;
  }

  public void setInvoiceDesc(String invoiceDesc) {
    this.invoiceDesc = invoiceDesc;
  }

  /**
   * 返回 收付款情况描述
   */
  public String getInvoiceDesc() {
    return this.invoiceDesc;
  }

  public void setIfFinished(String ifFinished) {
    this.ifFinished = ifFinished;
  }

  /**
   * 返回 是否完成收付款
   */
  public String getIfFinished() {
    return this.ifFinished;
  }

  public void setInvoiceAmount(Double invoiceAmount) {
    this.invoiceAmount = invoiceAmount;
  }

  /**
   * 返回 已完成收支金额
   */
  public Double getInvoiceAmount() {
    return this.invoiceAmount;
  }
}